版权声明:本文为博主原创文章,转载请注明出处:http://blog.jerkybible.com/2015/05/18/Spring 使用简单Demo进行源码调试(七)/
访问原文「Spring 使用简单Demo进行源码调试(七)」
接上篇日志Spring 使用简单Demo进行源码调试(六)继续。
经过前面几章详(gai)细(kuo)的调试,最后来到了Demo中的第二步,
展开getBean,代码如下。这一步通过getBeanFactory方法获取bean factory,然后使用bean factory获取对应的bean。
继续展开getBean。会走到之前初始化时候走到的方法,如下。由于已经初始化完毕,所以这一步走到Object sharedInstance = getSingleton(beanName);就会获取对应的bean实例。getSingleton这个函数的功能就是从已加载的实例中知道对应名称的bean实例,然后返回。接着代码进入if (sharedInstance != null && args == null)这个if中,通过getObjectForBeanInstance获取bean,这个函数说简单简单,简单的时候就是把前面获取的bean返回,说复杂复杂,前面获取的bean并不是需要的bean,而是一个factory的情况下,则使用这个factoy生成一个bean,然后返回。
在获取了bean以后,就可以使用这个bean了。简单的demo的分析就到此了,还有很多的问题和不足,Spring作为一个强大的java框架,复杂程度难以想象,在每一步的处理中到包含了大量的错误处理等目前没有分析到的部分。